home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / newlooklib.lha / newlook / addgborder.c next >
C/C++ Source or Header  |  1993-12-26  |  2KB  |  82 lines

  1. /*
  2.  *  ADDGBORDER.C
  3.  */
  4.  
  5. #include "newlook.h"
  6.  
  7. /****** newlook.lib/AddGBorder ******************************************
  8. *
  9. *   NAME
  10. *    AddGBorder -- Add a (newlook) border to a gadget.
  11. *
  12. *   SYNOPSIS
  13. *    border= AddGBorder( g, b )
  14. *
  15. *    struct Border *AddGBorder( struct Gadget *, struct Border * );
  16. *
  17. *   FUNCTION
  18. *    Link given struct Border *b to the g->GadgetRender list of Borders.
  19. *    If b is == NULL a new border will be created & chained to
  20. *    g->GadgetRender.
  21. *
  22. *   INPUTS
  23. *    g             - the gadget to this function is about to add
  24. *            or create a border.
  25. *    b             - the border (or a list of borders) which will be
  26. *            added to the g->GadgetRender entry or NULL for
  27. *            a newlook border.
  28. *
  29. *   RESULT
  30. *    border - either given struct border *b or (if b was NULL) the
  31. *    allocated newlook border.
  32. *
  33. *   EXAMPLE
  34. *
  35. *   NOTES
  36. *
  37. *   BUGS
  38. *
  39. *   SEE ALSO
  40. *    CreateBorder(), LastBorder()
  41. *
  42. *****************************************************************************
  43. *
  44. */
  45.  
  46. struct Border *AddGBorder(g,b)
  47. struct Gadget *g;
  48. struct Border *b;
  49. /* Links b given struct Border *b to the GadgetRender list of Borders.
  50.  * If b is NULL a new border will be created & chained to g->GadgetRender.
  51.  */
  52. {
  53.   /* No Borders for Gadgets w/ Images */
  54.   if(g && (g->Flags & GADGIMAGE)==NULL)
  55.   {
  56.     if(b == (struct Border *)NULL)
  57.     {
  58.       if(g->GadgetType == STRGADGET)
  59.       {
  60.         if(b= CreateBorder(-4,-2,g->Width+8,g->Height+4,TRUE))
  61.         {
  62.           LastBorder(b)->NextBorder=
  63.             CreateBorder(-6,-3,g->Width+12,g->Height+6,FALSE);
  64.         }
  65.       }
  66.       else if(g->GadgetType == BOOLGADGET)
  67.       {
  68.         b= CreateBorder(0,0,g->Width,g->Height,g->Flags==SELECTED|GADGHCOMP);
  69.       }
  70.     }
  71.  
  72.     if(b)  
  73.     {
  74.       if(g->GadgetRender)
  75.         LastBorder(b)->NextBorder = g->GadgetRender;
  76.       g->GadgetRender= b;
  77.     }
  78.   }
  79.  
  80.   return b;
  81. }
  82.